#include "MoCmSystem.h"

MO_NAMESPACE_BEGIN

//============================================================
FListeners::FListeners(){
   _pListeners = MO_CREATE(FListenerList);
}

//============================================================
FListeners::~FListeners(){
   MO_DELETE(_pListeners);
}

//============================================================
TBool FListeners::IsEmpty(){
   if(NULL != _pListeners){
      return _pListeners->IsEmpty();
   }
   return ETrue;
}

//============================================================
void FListeners::Push(IListener* pListener){
   if(NULL == _pListeners){
      _pListeners = MO_CREATE(FListenerList);
   }
   _pListeners->Push(pListener);
}

//============================================================
void FListeners::Clear(){
   if(NULL != _pListeners){
      _pListeners->Clear();
   }
}

//============================================================
TBool FListeners::Process(){
   if(NULL != _pListeners){
      if(!_pListeners->IsEmpty()){
         TListIteratorC<IListener*> iterator = _pListeners->IteratorC();
         while(iterator.Next()){
            iterator->Process();
         }
      }
   }
   return ETrue;
}

MO_NAMESPACE_END
